﻿using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Linq;
using System.Text;

namespace ArtWorldObjects
{
    [DataContract]
    public  class Artist : IArtist
    {
        protected string artistName;
        protected DateTime dateOfBirth;
        protected string placeOfBirth;
        protected ArtistTypes.TypesOfArtists typeOfArtist;
        protected ArtPiece workOfArt;
        protected Int64 artistID;
        protected string exceptionMessage;

        public Artist()
        {

        }

        [DataMember]
        public string Name
        {
            get
            {
                return artistName;
            }
            set
            {
                artistName = value;
            }
        }

        public DateTime DateOfBirth
        {
            get
            {
                return dateOfBirth;
            }
            set
            {
                dateOfBirth = value;
            }
        }

        [DataMember]
        public string DateOfBirthShortString
        {
            get
            {
                return DateOfBirth.ToShortDateString();
            }

            set
            {
                DateOfBirthShortString = DateOfBirth.ToShortDateString();
            }
            
        }

        [DataMember]
        public string DateOfBirthLongString
        {
            get
            {
                return DateOfBirth.ToLongDateString();
            }
            set
            {
                DateOfBirthLongString = DateOfBirth.ToLongDateString();
            }
        }

        [DataMember]
        public string PlaceOfBirth
        {
            get
            {
                return placeOfBirth;
            }
            set
            {
                placeOfBirth = value;
            }
        }

        [DataMember]
        public string ExceptionMessage
        {
            get
            {
                return exceptionMessage;
            }
            set
            {
                exceptionMessage = value;
            }
        }

        public ArtistTypes.TypesOfArtists Type
        {
            get
            {
                return typeOfArtist;
            }
            set
            {
                typeOfArtist = value;
            }
        }

        public ArtPiece CreateWorkOfArt()
        {
            return workOfArt;
        }



        public long ID
        {
            get
            {
                return artistID;
            }
           
        }
    }
}
